/**
 * 功能：
 * 	使视图与相关事件相分离
 *  类似于action 用来传递数据和控制视图
 *  quicktips 没有完成
 *  
 *  handler 事件需要重新改变量
 */
Ext.define('Risk.controller.rc.RcController',{
	extend : 'Ext.app.Controller',
	 stores:[
	     'rc.L0Store'
	 ],
	 models:[
	 	
	 ],
	      
	      /**
	       * 视图在congtroller中进行注册
	       * 将控制权转交给 this Controller
	       */
	  	  //管理的视图
     views: [
            'rc.PCCommunicate',
            'rc.PCPower',
            'rc.RCCResult',
            'rc.Lc',
            'rc.Lc2'
    ],
    isload : false,
    // 类创建好后要做的初始化工作
	init : function() {
	  this.control({
		  //类似于JQuery中的选择器   fieldLabel
	  	 'pcpowerfieldSet > radiogroup':{
			  change: this.pcChangeHandler,
			  render: this.initPC
		  },
		  'pcfieldSet > radiogroup':{
			  change: this.pcChangeHandler,
			  render: this.initPC
		  },
		  'rcpanel > checkbox':{
			  change: this.checkboxChangeHandler
			  /*,
			  render: this.rcpanel*/
		  },
		  'rcpanel':{
			  activate: this.getData
		  },
		  'lcfieldset > checkbox': {
			  change: this.lcCheckboxChange
		  },
		  'lcfieldset > combo':{
			  change:this.lcComboChange
		  },
		  'lc2fieldset > checkbox': {
			  change: this.lcCheckboxChange
		  },
		  'lc2fieldset > combo':{
			  change:this.lcComboChange
		  }
	  });
	},
	initPC:function(obj)
	{
		//提示消息
		var tooltips = [];
		for(var i = 1 ; i <= 5;i++)
		{
			tooltips.push({
		          target: 'RF_TIP'+i,
		          title: '火灾危险程度'+i,
		          html: '用于计算由火灾危险程度决定的减少物理损害导致人身伤亡损失因子【rf】。',
		          trackMouse: true
		        });
		}
       	Ext.each(tooltips, function(config) {
       		Ext.create('Ext.tip.ToolTip', config);
    	});
	},
	lcComboChange:function(o,newValue,oldValue)
	{
		  o.ownerCt.down('#lc').setValue(o.value);
	},
	lcCheckboxChange:function(obj,  newValue,  oldValue,  eOpts)
	{
			//obj.up('lcfieldset')
		  obj.ownerCt .down('#lccombo').setDisabled(obj.value);
	},
	pcChangeHandler:function(obj,  newValue,  oldValue,  eOpts )//处理radio 事件
	{
		var temp = 0;
		var flag = "";
		for(o in newValue)
		{
			//TODO  flga 为可变因素回收视图中的name影响
			flag = (o =='pcp');
			temp = newValue[o];
		}
		
		if(flag){
			obj.up('pcpowerfieldSet').down('#pcp').setValue(temp);
		}
		else{
			obj.up('pcfieldSet').down('#pcc').setValue(temp);
		}
	},
	checkboxChangeHandler:function(obj,newValue,oldValue)
	{
			if(obj.itemId=='power')
			{
				obj.up('form').down('pcpowerfieldSet').setDisabled(!obj.value);
			}else
			{
				obj.up('form').down('pcfieldSet').setDisabled(!obj.value);
			}
	},
	getData:function(obj)
	{
		var record = obj.up("maintab").ownerCt.ownerCt.items.get(0).getSelectionModel().selected.items[0];
		if(!obj.isLoad){
			obj.isLoad = true;
			Ext.Ajax.request({
			    url:'rc/get.do' ,
			    params:{projid:record.data.id,_doc:new Date().getMilliseconds()},
			    success:function(response){
			    //成功操作form 注入数据
//			    	var o = Ext.JSON.decode(response.responseText).others;
//			    	obj.getForm().setValues(o);
			    	var result = Ext.JSON.decode(response.responseText).success;
				    if(result)
				    {
				    	var o = Ext.JSON.decode(response.responseText).others;
				    	obj.getForm().setValues(o);
				    }else
				    {
				    	//obj.getForm().reset();
				    }
			    	
			    	//alert(response.responseText);
			    },
			    failure:function(response){
			     // 失败操作from 
			    	obj.getForm().reset();
			    }
			});
		}
		
	}
});